// 请你实现一个最简单的冒泡排序函数 bubbleSortSimple(arr)，让它能够把数组按升序排列。
// 思路：通过多次遍历数组，比较相邻元素并交换位置，最终将数组排序。时间复杂度为 O(n^2)。空间复杂度为 O(1)。
function bubbleSortSimple(arr) {
  // 在这里写代码
  for (let i = 0; i < arr.length - 1; i++) {
    // 外层循环控制总共进行多少轮比较，n个元素最多需要 n-1 轮冒泡
    for(let j = 0; j < arr.length - 1 - i; j++) {
      // 内层循环比较相邻的两个元素，范围会随着每轮减少，因为每轮都会把一个最大值放到末尾
      if(arr[j] > arr[j + 1]) {
        // 如果前面的元素比后面的元素大，则交换位置，实现升序排序
        let temp = arr[j];       // 用临时变量存储当前元素
        arr[j] = arr[j + 1];     // 把后一个元素放到前面
        arr[j + 1] = temp;       // 把当前元素放到后面
      }
    }
  }
  return arr; // 返回排序后的数组
}

// 4 6 3 2  1 7 5
// 1: 4 3 2 1 6 5 7
// 2: 3 2 1 4 5 6 7
// 3: 2 1 3 4 5 6 7
// 4: 1 2 3 4 5 6 7    
